/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package beans;

import java.sql.SQLException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 *
 * @author Frenzill
 */
public class Validator {
    
    public Boolean isDateValid(String day, String month, String year) throws ParseException {
        //Fecha de reunion tiene que ser mayor que la actual y ademas correcta
        Integer x = Integer.parseInt(day);
        Integer x1 = Integer.parseInt(month);
        Integer x2 = Integer.parseInt(year);
        Boolean res =true;
        //Mes impar-> el dia no puede ser mayor a 31
        if(x1%2==1 && x>31){
            res=false;
        }
        //En Febrero
        if(x1==2){
            //Años no bisiestos el dia no puede ser mayor de 28
            if(x2%4!=0 && x1>28){
                res=false;
            }
            if(x2%4==0 && x1>29){
                res=false;
            }
        }else{
             //Mes par(distinto de febrero)-> el dia no puede ser mayor a 30
             if(x1%2==0 && x>30){
                 res=false;
                }
        }
        //1º comprobamos que sea mayor que la fecha actual
        //Pasamos la fecha actual a Date y la comparamos con la date que nos pasan por parametros 
        //Si la date pasada es mayor todo esta bien.
        Calendar cal1 = Calendar.getInstance();
        SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy");
       
        Date d1=df.parse('"'+day+"-"+month+"-"+year+'"');
        Date d2=df.parse('"'+cal1.get(Calendar.DATE)+"-"+cal1.get(Calendar.MONTH)
                        +"-"+cal1.get(Calendar.YEAR)+'"');   
       
        if (d1.compareTo(d2) < 0){
            res=false;
        }
        return res;
        }
    

    
    public Boolean isCapacityValid(String name, String participants) throws SQLException, ClassNotFoundException{
        Boolean res=true;
        Dao d= new Dao();
        //compruebo que la capacidad de la sala elegida abarca a tantos 
        //invitados
        d.conectar();
        int capacity=d.getCapacityByIdRoom(d.getIdByNameRoom(name));
        d.desconectar();
        //nº de participantes
        String[] p = participants.split(" ");
        Integer n = p.length;
        if(n>capacity){
            res=false;
        }
        return res;
    }
    
    public Boolean isHourBiggerThan(String init, String fin) throws ParseException {
        Boolean res=false;
        DateFormat dateFormat = new SimpleDateFormat("HH:mm");
        Date in= dateFormat.parse(init);
        Date fi= dateFormat.parse(fin);
        if(in.compareTo(fi)>=0){
            res=true;
        }
        return res;
    }
    
}
